<?php
session_start();
require "include/dbms.inc.php";
require "include/template.inc.php";
require "include/setcontents.inc.php";

if(!isset($_GET['id'])){ // se non viene passato nessun parametro
    $body = new Template("dtml/prodotto_nondisp.html");
    $message = "errore nell'inserimento dell'url o categoria non più disponibile";
    $style = "alert";
}else{
    $body = new Template("dtml/scheda_categoria.html");
    $categoria = setcontents::getResult("
        SELECT *
          FROM categoria
         WHERE id = '{$_GET['id']}'");

    


        /* ----- i prodotti non attivi non sono visibili agli utenti comuni ----- */
        if(($_SESSION['user']['privilegi'][0]['gruppo']=="amministratore") ||  ($_SESSION['user']['privilegi'][0]['gruppo']=="backoffice")){
            $attivo = "";
        }else{
            $attivo = "and attivo = '1'";
        }

        /* ----- Controllo da dove sono arrivato a questo script (scheda_categoria)
         * ----- e se ci arrivo da SCHEDA_MARCA visualizzo soltanto i prodotti appartenenti
         * ----- sia alla marca che alla categoria che precedentemente si stava visualizzando */

        $script_origine = $_SERVER['HTTP_REFERER'];
        if(strpos($script_origine, 'scheda_marca') > 0){
            $id_marca = substr(strrchr($script_origine, "="),1);
            $marca = "and marca = '{$id_marca}'";

            $result = setcontents::getResult("
                SELECT id,nome
                  FROM marca
                 WHERE id = '{$id_marca}'");

            $body->setContent("marca", $result);
        }

        // carico i prodotti appartenenti alla categoria scelta
        $prodotti = setcontents::getResult("
                SELECT *
                  FROM prodotto
                 WHERE categoria = '{$_GET['id']}'{$attivo}{$marca}");

        // la lista delle sottocategorie dell'attuale categoria da visualizzare come serie di link
        $lista_sottocategorie = setcontents::getResult("
            SELECT categoria.nome as cat_nome,categoria.id as cat_id
              FROM categoria
         LEFT JOIN sottocategoria
                ON id_subcateg = categoria.id
             WHERE sottocategoria.id_categ = '{$_GET['id']}'");

    /* ----- Ciclo per selezionare tutti i prodotti presenti in tutte le sottocategorie della categoria che si visualizza ----- */
    $sup_categ = $_GET['id'];

    do{
        $sottocategorie = setcontents::getResult("
            SELECT categoria.id as cat_id
              FROM categoria
         LEFT JOIN sottocategoria
                ON id_subcateg = categoria.id
             WHERE sottocategoria.id_categ = '{$sup_categ}'{$or_categorie}");

        if(isset($sottocategorie)){

            // poi accodo alla lista dei prodotti sopra, la lista dei prodotti di tutte le sottocategorie
            $c = 0; //variabile per tenere il numero delle sottocategorie
            foreach($sottocategorie as $k => $v){
                $c++;
                $sotto_prodotti = setcontents::getResult("
                    SELECT *
                      FROM prodotto
                     WHERE categoria = '{$v['cat_id']}'{$attivo}{$marca}");

                if(isset($sotto_prodotti) && isset($prodotti)){
                    $prodotti = array_merge($prodotti,$sotto_prodotti);
                }else{
                    if(isset($sotto_prodotti)){
                        $prodotti = $sotto_prodotti;
                    }
                }

                /* la prima sottocategoria(c = 1) viene inserita nella variabile che è il primo parametro nella query $sottocategorie
                 *  mentre le successive vengono inserite nella seconda variabile che realizza l'OR nella query
                 * Questo consente di prelevare dal database tutte le sottocategorie per ogni sottocategoria che analizziamo
                 * in modo ricorsivo */

                if($c > 1){
                    $or_categorie = "OR sottocategoria.id_categ = '{$v['cat_id']}'";
                }else{
                    $sup_categ = $v['cat_id'];
                }
            }// fine ciclo sui prodotti di ogni sottocategoria
        } // fine controllo sottocategorie
    }while(isset($sottocategorie));

    $body->setContent("prodotti", $prodotti);
    $body->setContent("nome", $categoria[0]['nome']);
    $body->setContent("sottocategorie", $lista_sottocategorie);
    if(!isset($categoria)){
        $body =  new Template("dtml/prodotto_nondisp.html");
    }
}

setcontents::setTemplate();
setcontents::setMenu($message,$style);
setcontents::setBody($body);

$main->close();

?>